using System;

namespace XmlObjects.Parsers
{
	public class ExampleClassFactory
	{		
		public static IExampleClass GetAMyClass(Type t)
		{
			Type theMyClassGenericType = typeof (ExampleClass<>).MakeGenericType(t);
			IExampleClass exampleClass = (IExampleClass) Activator.CreateInstance(theMyClassGenericType);
			// do some other stuff;
			return exampleClass;
		}
	}

	public interface IExampleClass
	{
		object GetDefaultValue(string aStr);
	}

	public class StringClass
	{
		public string StringField;
	}

	public class ExampleClass<T> : IExampleClass
	{

		public T GetDefaultValue(T aStr)
		{
			return default(T);
		}

		public V GetDefaultValue<V>()
		{
			return default(V);
		}

		public object GetDefaultValue(string aStr)
		{
			throw new NotImplementedException();
		}
	}
}